C语言丨关键字signed和unsigned 的使用与区别详解 | 您所在的位置:网站首页 › long int的int可以省略吗 › C语言丨关键字signed和unsigned 的使用与区别详解 |
在C语言中,signed/unsigned用于修饰整数变量,signed表示有符号的,unsigned表示无符号的。 今天就带大家了解一下 关键字signed和unsigned 。 1、signed sign的本意是“标记,做记号”,ed后缀有一种完成时的感觉,这里表示的是有符号的。 signed关键字是ISO/ANSI C90标准新增的,其常见于整数类型的符号规定处 。 signed的作用是:声明有符号类型的整数类型。其实说signed很常见也不见得,因为我们常用的int、short和long,以及long long,默认情况下都是signed有符号的 所以相比起来unsigned的戏份可能比signed更多,signed在这里只是相当于刻意地去说明其后面的变量是有符号类型的 signed int a; /* 通常这里带signed的变量定义都可以省略掉signed,因为signed本身就是默认的 */ signed short int b; signed short c; signed long int d; signed long e; signed long long f; unsigned int g; /* 写上signed后,上面的定义似乎在刻意地大声说“上面这些变量应该是有符号的” */ unsigned short h; /* 但一般unsigned的戏份还是比signed多,signed关键字和auto关键字的宿命类似 */ 有符号数在计算机中的的表示方法:在计算机内部,是用补码表示有符号数-正数的补码是其本身 -负数的补码为负数的绝对值得各个位取反加1 举个例子: 8位整数 5的补码为:0000 0101 8位整数 -7的补码为:取绝对值|-7| = 7 --> 二进制为 0000 0111 --> 各个位取反 1111 1000 -->最后加1 -->1111 1001,所 以-7在计算机中就表示为1111 1001。 |
CopyRight 2018-2019 实验室设备网 版权所有 |